package com.atguigu.wc

import org.apache.flink.api.scala._

/**
 * @description: flink批处理案例,
 * @time: 2020/6/17 23:27
 * @author: baojinlong
 **/
object WordCount {
  def main(args: Array[String]): Unit = {
    // 创建一个可以执行的环境,
    val environment: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment

    // 读取文件
    val value: DataSet[String] = environment.readTextFile("E:/qj_codes/big-data/FlinkTutorial/src/main/resources/hello.txt")
    // 读取的每一行文件可以看作一个事件
    val wordCountDS: AggregateDataSet[(String, Int)] =
      value
        .flatMap(_.split(" ")) //将每一行数据打散得到所有word构成的数据集
        .map((_, 1)) // 分词得到所有word构成的数据集
        .groupBy(0) // 根据二元组中第一个元素作为key分组
        .sum(1) // 聚合二元组中第二个元素的值
    // 打印输出
    wordCountDS.print
  }
}
